package cn.kgc.feign;

import cn.kgc.grace.result.GraceJSONResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @author YC
 */
@FeignClient(name = "user-service", path = "/users", fallback = UserFeignClientImpl.class)
public interface UserFeignClient {

    /**
     * 远程调用：根据用户ID查询对应公司ID（如果是HR，不是HR返回空字符串）
     *
     * @param userId 用户ID
     * @return 公司ID
     */
    @PostMapping("/getCompanyIdByUserId")
    GraceJSONResult getCompanyIdByUserId(@RequestParam("userId") String userId);

    /**
     * 远程调用：根据用户名模糊查询用户id列表
     *
     * @param userName 用户名
     * @return 用户ID列表
     */
    @PostMapping("/admin/userIdList")
    GraceJSONResult userIdList(@RequestParam("userName") String userName);

    /**
     * 远程调用：修改用户角色为招聘者
     *
     * @param commitUserId 提交人ID
     * @param companyId    公司ID
     * @return 修改结果
     */
    @PostMapping("/updateUserRole")
    GraceJSONResult updateUserRole(@RequestParam("commitUserId") String commitUserId, @RequestParam("companyId") String companyId);

    /**
     * 求职者招聘者查看自己信息
     *
     * @param userId 用户ID
     * @return 用户信息
     */
    @PostMapping("/detail")
    GraceJSONResult detail(@RequestParam("userId") String userId);

}
